import javax.swing.tree.TreeNode;

class Solution {
  //给定一个二叉树，找出其最小深度。

   //最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

   //说明：叶子节点是指没有子节点的节点。
   public int minDepth(TreeNode root) {
       /*if(root == null){
           return 0;
       }
       int min1 = minDepth(root.left);
       int min2 = minDepth(root.right);
        if(min1 == 0){
            return min2 +1;
        }
        if(min2 == 0){
            return min1 +1;
        }
       return Integer.min(min1,min2)+1;
   }

   层序遍历
      public int minDepth (TreeNode root){
         if (root == null) {
            return 0;
         }
         Queue<TreeNode> queue = new LinkedList<>();
         queue.offer(root);
         int depth = 0;
         while (!queue.isEmpty()) {
            int size = queue.size();
            depth++;
            for (int i = 0; i < size; i++) {
               TreeNode poll = queue.poll();
               if (poll.left == null && poll.right == null) {
                  return depth;
               }
               if (poll.left != null) {
                  queue.offer(poll.left);
               }
               if (poll.right != null) {
                  queue.offer(poll.right);
               }
            }
         }
         return depth;
      }
   }
}*/